/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package rpt.lib;

import java.util.ArrayList;
import javax.swing.JTabbedPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;

/**
 *
 * @author Roberto
 */

public class CControleNavegacaoMenuArvoreTab {

    ArrayList fControlesNavegacao = null;
    JTree fArvore = null;
    JTabbedPane fTabbedPane;

    public CControleNavegacaoMenuArvoreTab(JTree aArvore, JTabbedPane aTabbedPane) {
        fControlesNavegacao = new ArrayList ();
        fArvore = aArvore;
        fTabbedPane = aTabbedPane;
    }

    public CRegistroControleNavegacaoMenuArvoreTab adicionar(Object aObjetoMenu) {
        CRegistroControleNavegacaoMenuArvoreTab rcn = new CRegistroControleNavegacaoMenuArvoreTab(fTabbedPane);
        fControlesNavegacao.add(rcn);
        rcn.setMenu(aObjetoMenu);
        return rcn;
    }

    public CRegistroControleNavegacaoMenuArvoreTab adicionar(Object aObjetoMenu, DefaultMutableTreeNode aTreeNode) {
        CRegistroControleNavegacaoMenuArvoreTab rcn = adicionar(aObjetoMenu);
        rcn.setNodoArvore(fArvore,aTreeNode);
        return rcn;
    }

    public CRegistroControleNavegacaoMenuArvoreTab getMenu(Object aObjetoMenu) {
        if (aObjetoMenu == null) return null;
        CRegistroControleNavegacaoMenuArvoreTab vRegistroControleLocalizado = null;
        int vNumItens = fControlesNavegacao.size();
        for (int vContador = 0;((vContador < vNumItens) && (vRegistroControleLocalizado == null)); vContador++) {
            CRegistroControleNavegacaoMenuArvoreTab rcn =
                (CRegistroControleNavegacaoMenuArvoreTab)fControlesNavegacao.get(vContador);
            if (rcn.getMenu() == aObjetoMenu)
                vRegistroControleLocalizado = rcn;
        }
        return vRegistroControleLocalizado;
    }

    public CRegistroControleNavegacaoMenuArvoreTab getNodoArvore(DefaultMutableTreeNode aTreeNode) {
        if (aTreeNode == null) return null;
        CRegistroControleNavegacaoMenuArvoreTab vRegistroControleLocalizado = null;
        int vNumItens = fControlesNavegacao.size();
        for (int vContador = 0;((vContador < vNumItens) && (vRegistroControleLocalizado == null)); vContador++) {
            CRegistroControleNavegacaoMenuArvoreTab rcn =
                (CRegistroControleNavegacaoMenuArvoreTab)fControlesNavegacao.get(vContador);
            if (rcn.getNodoArvore() == aTreeNode) vRegistroControleLocalizado = rcn;
        }
        return vRegistroControleLocalizado;
    }

    public int getIndiceTab(JTabbedPane aTabbedPane, CTabBotaoFechar aTabBotaoFechar) {
        if (aTabBotaoFechar == null) return -1;
        int vIndice = -1;
        int vNumItens = aTabbedPane.getTabCount();
        for (int vContador = 0;((vContador < vNumItens) && (vIndice == -1)); vContador++) {
            CTabBotaoFechar itp = (CTabBotaoFechar)aTabbedPane.getTabComponentAt(vContador);
            if (itp == aTabBotaoFechar)
                vIndice = vContador;
        }
        /*
        int vNumItens = fControlesNavegacao.size();
        for (int vContador = 0;((vContador < vNumItens) && (vIndice == -1)); vContador++) {
            CRegistroControleNavegacaoMenuArvoreTab rcn =
                (CRegistroControleNavegacaoMenuArvoreTab)fControlesNavegacao.get(vContador);
            CTabBotaoFechar itp = rcn.getTabBotaoFechar();
            if (itp == aTabBotaoFechar)
                vIndice = vContador;
        }
         *
         */
        return vIndice;
    }

    public CRegistroControleNavegacaoMenuArvoreTab getTab(JTabbedPane aTabbedPane, CTabBotaoFechar aTabBotaoFechar) {
        if (aTabBotaoFechar == null) return null;
        CRegistroControleNavegacaoMenuArvoreTab vRegistroControleLocalizado = null;
        int vNumItens = aTabbedPane.getTabCount();
        for (int vContador = 0;((vContador < vNumItens) && (vRegistroControleLocalizado == null)); vContador++) {
            CTabBotaoFechar itp = (CTabBotaoFechar)aTabbedPane.getTabComponentAt(vContador);
            //if ((itp != null) && (itp == aTabBotaoFechar))
                //vRegistroControleLocalizado = rcn;
        }
        /*
        int vNumItens = fControlesNavegacao.size();
        for (int vContador = 0;((vContador < vNumItens) && (vRegistroControleLocalizado == null)); vContador++) {
            CRegistroControleNavegacaoMenuArvoreTab rcn =
                (CRegistroControleNavegacaoMenuArvoreTab)fControlesNavegacao.get(vContador);
            CTabBotaoFechar itp = rcn.getTabBotaoFechar();
            if ((itp != null) && (itp == aTabBotaoFechar))
                vRegistroControleLocalizado = rcn;
        }
         *
         */
        return vRegistroControleLocalizado;
    }

    public void setTreeNodeRegistroControle(Object aObjetoMenu, DefaultMutableTreeNode aTreeNode) {
        CRegistroControleNavegacaoMenuArvoreTab rcn = getMenu(aObjetoMenu);
        if (rcn != null) {
            rcn.setNodoArvore(fArvore,aTreeNode);
        }
    }

    public void setTabRegistroControle(Object aObjetoMenu, JTabbedPane aTabbedPane, CTabBotaoFechar aTabBotaoFechar) {
        CRegistroControleNavegacaoMenuArvoreTab rcn = getMenu(aObjetoMenu);
        if (rcn != null) {
//          rcn.setTabbedPane(aTabbedPane);
            rcn.setTabBotaoFechar(aTabBotaoFechar);
        }
    }

    public void focarTodosMenu(Object aObjetoMenu) {
        CRegistroControleNavegacaoMenuArvoreTab rcn = getMenu(aObjetoMenu);
        if (rcn != null) rcn.focarTodos();
    }

    public void focarTodosNodoArvore(DefaultMutableTreeNode aNodoArvore) {
        CRegistroControleNavegacaoMenuArvoreTab rcn = getNodoArvore(aNodoArvore);
        if (rcn != null) rcn.focarTodos();
    }

    public void focarTodosTab(JTabbedPane aTab, CTabBotaoFechar aTabBotaoFechar) {
        CRegistroControleNavegacaoMenuArvoreTab rcn = getTab(aTab,aTabBotaoFechar);
        if (rcn != null) rcn.focarTodos();
    }
}

